package com.d3works.apps.account.service.analytic;

import com.d3works.apps.account.db.AnalyticJournal;
import com.d3works.apps.account.db.AnalyticMoveLine;
import com.d3works.apps.account.db.repo.AnalyticLine;
import com.d3works.apps.base.db.Company;
import com.d3works.exception.D3worksException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

public interface AnalyticLineService {

  AnalyticJournal getAnalyticJournal(AnalyticLine line) throws D3worksException;

  LocalDate getDate(AnalyticLine line);

  BigDecimal getAnalyticAmountFromParent(AnalyticLine line, AnalyticMoveLine analyticMoveLine);

  List<Long> getAxisDomains(AnalyticLine line, Company company, int position)
      throws D3worksException;

  boolean isAxisRequired(AnalyticLine line, Company company, int position) throws D3worksException;

  AnalyticLine checkAnalyticLineForAxis(AnalyticLine line);

  AnalyticLine printAnalyticAccount(AnalyticLine line, Company company) throws D3worksException;
}
